"삼성SW" <Baekjoon> #23289 Simulation_온풍기 안녕! c++ (문제를 푸는데 모든 코드를 참고했다.. {동,서,남,북}의 방향을 {0,1,2,3} 으로 설정한다 입력 받아야 하는 값에는 온풍기의 좌표와 방향, 벽의 좌표와 벽이 세워진 방향, 온도를 조사해야하는 좌표가 있다 온도를 조사해야하는 좌표는 vector<pair<int, int>>, 온풍기와 벽은 vector<pair<pair<int, int>, int>>으로 나타낸다 bool wallMap[... simulationbaekjoonalgorithm"삼성SW""삼성SW" <SWEA> #5658 set, deque_보물상자 비밀번호 c++ 1. Input 보물 상자의 뚜껑을 시계방향으로 돌릴 때마다 비밀번호 쌍이 바뀌므로 deque 자료구조를 사용했다 (삽입과 삭제가 빈번하게 일어나지 않으므로 vector를 사용해도 된다) 비밀번호 쌍은 중복을 허용하지 않으므로 set자료구조를 사용했다. 이때 내림차순으로 저장되게 생성한다 (이것 또한 그냥 vector를 사용하고 저장할 때 중복된 값은 저장하지 않는 방법을 사용해도 된다) 2... setDeque"삼성SW"algorithm"삼성SW" <Baekjoon> #17822 Deque, BFS, Simulation_원판 돌리기 c++ ⭕ Solution & Idea 원판을 한 칸씩 돌릴 때마다 원판의 마지막 값이 가장 앞으로 오고, 앞의 값이 마지막 값으로 간다는 점에서 deque 자료 구조를 이용한다 이웃한 원판의 수를 지울 때 bfs, 너비 우선 탐색을 이용하는데 이때 같은 원판 내에서 처음 끝과 마지막 값이 이웃한다는 점을 주의한다 ⭕ 1. roate 시계 방향으로 회전했을 경우 원판의 변화를 보면 가장 마지막 값이... baekjoonalgorithmDeque"삼성SW"simulationBFS"삼성SW" <Baekjoon> #23290 Simulation, BFS, DFS, Backtracking_마법사 상어와 복제 c++ 따라서 물고기 번호 vector<int> fnum, scent_time을 저장하는 맵을 만들어준다 현재 시간을 Time 이라고 두고, 물고기가 상어에게 잡혀 사라질 때 scent_time=Time 을 넣어준다. 그러고 후에 두 번 전 연습에서 생긴 물고기의 냄새가 격자에서 사라질 때, Time-scent_time==2인 경우 scent_time=0으로 만들어주는 방법을 사용한다 1. star... DFSalgorithmBacktracking"삼성SW"simulationBFS"삼성SW" <Baekjoon> #17780 #17837 새로운 게임1,2 c++ map상에는 각 색깔이 저장되어 있고, 각 칸에는 여러 개의 체스가 저장되기 때문에 map에 색을 저장하는 벡터와, 각map에 여러 개의 체스를 저장할 벡터를 만들어야 한다 각각의 체스는 위치 (y,x)와 방향을 가지기 때문에 이 셋을 저장할 구조체를 따로 선언한다 각 체스를 움직일 때, 현재 체스보다 위에 있는 체스들을 함께 움직이기 때문에 현재 움직이려는 체스가 현재 칸에서 몇 번째에 위... beakjoonalgorithm"삼성SW""삼성SW" <Baekjoon> #19237 구현_어른 상어 struct SHARK 정의 한 칸에는 상어가 뿌린 냄새와 냄새가 사라지기까지 남은 시간이 저장된다 각 map의 냄새의 주인을 저장하는 변수와 남은 시간은 0으로 초기화 한다 위에서 처음 map에 데이터를 입력할 때, 냄새의 주인과 냄새가 사라지기까지 남은 시간은 0으로 초기화를 해두었다 살아있는 모든 상어가 움직인 위치를 조사해 해당 위치에 냄새와 냄새가 사라지기까지 남은 시간을 업데이트 ... baekjoonalgorithm"삼성SW""삼성SW" <Baekjoon> #14888 DFS_연산자 끼워넣기 c++ 삼성 코딩테스트 기출 문제라고 한다 숫자들이 주어지고 그 사이에 적절하게 연산자를 끼워넣어서 최댓값과 최솟값을 구해야 한다. 주어진 연산자를 모두 다 썼을 때의 sum을 maxSum, minSum 과 비교해서 최댓값, 최솟값을 구해준다. e.g. num={1,2,3,4,5,6}, (+)2개, (-)1개, (x)1개, (÷)1개인 경우 1 ⓐ 2 ⓑ 3 ⓒ 4 ⓓ 5 ⓔ 6 에서 각 ⓐⓑⓒⓓⓔ... algorithmDFSBacktrackingbaekjoon"삼성SW""삼성SW" <Baekjoon> #14500 DFS_테트로미노 c++ 처음에는 문제를 보고 모든 테트로미노의 모양을 구해야 하는 아이디어밖에 떠오르지 않았다. 그래서 다른 사람들의 풀이를 많이 참고했다. (실제로 어떤 사람은 모든 경우의 수를 구한 사람도 보았다) 먼저 테트로미노를 보면 ㅜ 이 모양 이외에는 깊이가 4인 모양임을 알 수 있다 (테트로미노를 대칭시키고 회전을 시킬 수 있다고 했으므로) DFS 함수 DFS 함수의 파라미터로는 int y, int x... algorithmDFSBacktrackingbaekjoon"삼성SW""삼성SW" 격자판의 숫자 이어 붙이기 문제 : 2819 이 문제에서 dfs(ny, nx, depth + 1, s + to_string(map[ny][nx]));를 dfs(ny, nx, depth + 1, s += to_string(map[ny][nx]));해서 버그가 있었다. DFS문제 스타일. DFS에서 방문기록 체크 안하는 스타일의 문제... "삼성SW""삼성4단계"알고리즘DFS"삼성4단계" 3일차-회문1 "삼성SW""삼성3단계"알고리즘"삼성3단계" 7일차-미로2 "삼성SW""삼성4단계"BFS알고리즘"삼성4단계" <Baekjoon> #14502 BFS_Laboratory c++ 처음에 문제를 잘못 읽어서 바이러스가 바이러스 점을 기준으로 8방향으로 모두 퍼질 수 있다고 생각했고 이차원 배열을 call by value로 넘기려고 해서 큰 문제가 발생했었다..! 먼저 한 빈 공간을 기준으로 인접한 빈 공간부터 차례대로 3개씩 벽을 쌓아나가서 바이러스가 최소로 퍼질 수 있는 것을 구해야 한다. map생성 및 초기화 (위에서 말한대로 처음에는 int map[MAX][MAX... BFS"삼성SW"baekjoonalgorithm"삼성SW" 최대상금 문제 자체 좋았음. 완전탐색 + DFS조합. 이문제 못풀엇음.` 테스트 케이스 2개가 안맞는데, 정확한 이유는 모르겠다. dfs하면서 1] 완전탐색 하는 경우에 위와같은 이중포문 형태(중요) 2] 만약 원하는 답이 나왔을 경우 답 교체... "삼성SW"DFS"삼성3단계"알고리즘완전탐색"삼성3단계" <Baekjoon> #20057 BFS_마법사 상어와 토네이도 c++ 1. dir 방향으로 dist 만큼 이동 (dir-서,남,동,북, dist-1부터 시작) 이동할 때 9방향으로 모래가 퍼짐 나머지가 a에 저장 dir 방향 변경 dir 방향으로 dist 만큼 이동 이동할 때 9방향으로 모래가 퍼짐 나머지가 a에 저장 dir 방향 변경, dist=dist+1 다음 모래가 각 위치에 퍼지는 비율을 저장하는데 오른쪽 그림과 같은 순서의 비율로 모래를 저장하면 do... algorithmBFSbaekjoon"삼성SW""삼성SW" <Baekjoon> #14891 Deque_톱니바퀴 c++ 처음에 문제를 보고 쉬운 문제라고 생각했고 톱니바퀴의 상태를 저장하는 벡터를 만들고 옆에 있는 톱니와 맞닿는 톱니의 index를 따로 저장해서 톱니가 움직일 때마다 이 index만 계속 변경해주면 된다고 생각했다. 그런데 그럴 필요 없이 deque를 이용하면 훨씬 편하게 구할 수 있다. (톱니바퀴의 원형 구조를 그림에 떡하니 그려놓은 거는deque를 사용하라고 그런 것 같다.. 눈치 못 챈 ... queueDequealgorithmbaekjoon"삼성SW""삼성SW"
<Baekjoon> #23289 Simulation_온풍기 안녕! c++ (문제를 푸는데 모든 코드를 참고했다.. {동,서,남,북}의 방향을 {0,1,2,3} 으로 설정한다 입력 받아야 하는 값에는 온풍기의 좌표와 방향, 벽의 좌표와 벽이 세워진 방향, 온도를 조사해야하는 좌표가 있다 온도를 조사해야하는 좌표는 vector<pair<int, int>>, 온풍기와 벽은 vector<pair<pair<int, int>, int>>으로 나타낸다 bool wallMap[... simulationbaekjoonalgorithm"삼성SW""삼성SW" <SWEA> #5658 set, deque_보물상자 비밀번호 c++ 1. Input 보물 상자의 뚜껑을 시계방향으로 돌릴 때마다 비밀번호 쌍이 바뀌므로 deque 자료구조를 사용했다 (삽입과 삭제가 빈번하게 일어나지 않으므로 vector를 사용해도 된다) 비밀번호 쌍은 중복을 허용하지 않으므로 set자료구조를 사용했다. 이때 내림차순으로 저장되게 생성한다 (이것 또한 그냥 vector를 사용하고 저장할 때 중복된 값은 저장하지 않는 방법을 사용해도 된다) 2... setDeque"삼성SW"algorithm"삼성SW" <Baekjoon> #17822 Deque, BFS, Simulation_원판 돌리기 c++ ⭕ Solution & Idea 원판을 한 칸씩 돌릴 때마다 원판의 마지막 값이 가장 앞으로 오고, 앞의 값이 마지막 값으로 간다는 점에서 deque 자료 구조를 이용한다 이웃한 원판의 수를 지울 때 bfs, 너비 우선 탐색을 이용하는데 이때 같은 원판 내에서 처음 끝과 마지막 값이 이웃한다는 점을 주의한다 ⭕ 1. roate 시계 방향으로 회전했을 경우 원판의 변화를 보면 가장 마지막 값이... baekjoonalgorithmDeque"삼성SW"simulationBFS"삼성SW" <Baekjoon> #23290 Simulation, BFS, DFS, Backtracking_마법사 상어와 복제 c++ 따라서 물고기 번호 vector<int> fnum, scent_time을 저장하는 맵을 만들어준다 현재 시간을 Time 이라고 두고, 물고기가 상어에게 잡혀 사라질 때 scent_time=Time 을 넣어준다. 그러고 후에 두 번 전 연습에서 생긴 물고기의 냄새가 격자에서 사라질 때, Time-scent_time==2인 경우 scent_time=0으로 만들어주는 방법을 사용한다 1. star... DFSalgorithmBacktracking"삼성SW"simulationBFS"삼성SW" <Baekjoon> #17780 #17837 새로운 게임1,2 c++ map상에는 각 색깔이 저장되어 있고, 각 칸에는 여러 개의 체스가 저장되기 때문에 map에 색을 저장하는 벡터와, 각map에 여러 개의 체스를 저장할 벡터를 만들어야 한다 각각의 체스는 위치 (y,x)와 방향을 가지기 때문에 이 셋을 저장할 구조체를 따로 선언한다 각 체스를 움직일 때, 현재 체스보다 위에 있는 체스들을 함께 움직이기 때문에 현재 움직이려는 체스가 현재 칸에서 몇 번째에 위... beakjoonalgorithm"삼성SW""삼성SW" <Baekjoon> #19237 구현_어른 상어 struct SHARK 정의 한 칸에는 상어가 뿌린 냄새와 냄새가 사라지기까지 남은 시간이 저장된다 각 map의 냄새의 주인을 저장하는 변수와 남은 시간은 0으로 초기화 한다 위에서 처음 map에 데이터를 입력할 때, 냄새의 주인과 냄새가 사라지기까지 남은 시간은 0으로 초기화를 해두었다 살아있는 모든 상어가 움직인 위치를 조사해 해당 위치에 냄새와 냄새가 사라지기까지 남은 시간을 업데이트 ... baekjoonalgorithm"삼성SW""삼성SW" <Baekjoon> #14888 DFS_연산자 끼워넣기 c++ 삼성 코딩테스트 기출 문제라고 한다 숫자들이 주어지고 그 사이에 적절하게 연산자를 끼워넣어서 최댓값과 최솟값을 구해야 한다. 주어진 연산자를 모두 다 썼을 때의 sum을 maxSum, minSum 과 비교해서 최댓값, 최솟값을 구해준다. e.g. num={1,2,3,4,5,6}, (+)2개, (-)1개, (x)1개, (÷)1개인 경우 1 ⓐ 2 ⓑ 3 ⓒ 4 ⓓ 5 ⓔ 6 에서 각 ⓐⓑⓒⓓⓔ... algorithmDFSBacktrackingbaekjoon"삼성SW""삼성SW" <Baekjoon> #14500 DFS_테트로미노 c++ 처음에는 문제를 보고 모든 테트로미노의 모양을 구해야 하는 아이디어밖에 떠오르지 않았다. 그래서 다른 사람들의 풀이를 많이 참고했다. (실제로 어떤 사람은 모든 경우의 수를 구한 사람도 보았다) 먼저 테트로미노를 보면 ㅜ 이 모양 이외에는 깊이가 4인 모양임을 알 수 있다 (테트로미노를 대칭시키고 회전을 시킬 수 있다고 했으므로) DFS 함수 DFS 함수의 파라미터로는 int y, int x... algorithmDFSBacktrackingbaekjoon"삼성SW""삼성SW" 격자판의 숫자 이어 붙이기 문제 : 2819 이 문제에서 dfs(ny, nx, depth + 1, s + to_string(map[ny][nx]));를 dfs(ny, nx, depth + 1, s += to_string(map[ny][nx]));해서 버그가 있었다. DFS문제 스타일. DFS에서 방문기록 체크 안하는 스타일의 문제... "삼성SW""삼성4단계"알고리즘DFS"삼성4단계" 3일차-회문1 "삼성SW""삼성3단계"알고리즘"삼성3단계" 7일차-미로2 "삼성SW""삼성4단계"BFS알고리즘"삼성4단계" <Baekjoon> #14502 BFS_Laboratory c++ 처음에 문제를 잘못 읽어서 바이러스가 바이러스 점을 기준으로 8방향으로 모두 퍼질 수 있다고 생각했고 이차원 배열을 call by value로 넘기려고 해서 큰 문제가 발생했었다..! 먼저 한 빈 공간을 기준으로 인접한 빈 공간부터 차례대로 3개씩 벽을 쌓아나가서 바이러스가 최소로 퍼질 수 있는 것을 구해야 한다. map생성 및 초기화 (위에서 말한대로 처음에는 int map[MAX][MAX... BFS"삼성SW"baekjoonalgorithm"삼성SW" 최대상금 문제 자체 좋았음. 완전탐색 + DFS조합. 이문제 못풀엇음.` 테스트 케이스 2개가 안맞는데, 정확한 이유는 모르겠다. dfs하면서 1] 완전탐색 하는 경우에 위와같은 이중포문 형태(중요) 2] 만약 원하는 답이 나왔을 경우 답 교체... "삼성SW"DFS"삼성3단계"알고리즘완전탐색"삼성3단계" <Baekjoon> #20057 BFS_마법사 상어와 토네이도 c++ 1. dir 방향으로 dist 만큼 이동 (dir-서,남,동,북, dist-1부터 시작) 이동할 때 9방향으로 모래가 퍼짐 나머지가 a에 저장 dir 방향 변경 dir 방향으로 dist 만큼 이동 이동할 때 9방향으로 모래가 퍼짐 나머지가 a에 저장 dir 방향 변경, dist=dist+1 다음 모래가 각 위치에 퍼지는 비율을 저장하는데 오른쪽 그림과 같은 순서의 비율로 모래를 저장하면 do... algorithmBFSbaekjoon"삼성SW""삼성SW" <Baekjoon> #14891 Deque_톱니바퀴 c++ 처음에 문제를 보고 쉬운 문제라고 생각했고 톱니바퀴의 상태를 저장하는 벡터를 만들고 옆에 있는 톱니와 맞닿는 톱니의 index를 따로 저장해서 톱니가 움직일 때마다 이 index만 계속 변경해주면 된다고 생각했다. 그런데 그럴 필요 없이 deque를 이용하면 훨씬 편하게 구할 수 있다. (톱니바퀴의 원형 구조를 그림에 떡하니 그려놓은 거는deque를 사용하라고 그런 것 같다.. 눈치 못 챈 ... queueDequealgorithmbaekjoon"삼성SW""삼성SW"